package LogicaFM;

import java.util.ArrayList;
import java.util.Arrays;


public class Formacion {
	
	private Fecha fecha;
	private ArrayList<JugadorPrimera> titulares;
	private ArrayList<JugadorPrimera> suplentes;
	private int transferenciasDisponibles;
	private int puntuacion;
	
	public Formacion(Object object, Object object2,
			JugadorPrimera[] titulares2, JugadorPrimera[] suplentes2, int i,
			int j) {
		fecha=null;
		titulares=(ArrayList<JugadorPrimera>) Arrays.asList(titulares2);
		suplentes=(ArrayList<JugadorPrimera>) Arrays.asList(suplentes2);
		transferenciasDisponibles=i;
		puntuacion=j;
	}
	
	public Formacion(Fecha f,
			JugadorPrimera[] titulares2, JugadorPrimera[] suplentes2, int i,
			int j) {
		fecha=f;
		titulares=new ArrayList<JugadorPrimera>(Arrays.asList(titulares2));
		suplentes=new ArrayList<JugadorPrimera>(Arrays.asList(suplentes2));
		transferenciasDisponibles=i;
		puntuacion=j;
	}

	public Formacion() {
		titulares = new ArrayList<JugadorPrimera>();
		suplentes = new ArrayList<JugadorPrimera>();
	}


	public Formacion(Fecha fecha2, int i) {
		fecha=fecha2;
		puntuacion=i;
	}


	public void agregarJugador(JugadorPrimera jugador, int condicion) {
		
		if(condicion==JugadorPrimera.TITULAR){
			titulares.add(jugador);
		}
		
		if(condicion==JugadorPrimera.SUPLENTE){
			suplentes.add(jugador);
		}
	}

	
	public int getPuntuacion() {
		
		return puntuacion;
	}
	
	public int getTransferenciasDisponibles() {
		
		return transferenciasDisponibles;
	}

	public void cambiarTitularSuplente(int idTitular, int idSuplente) {
		
		JugadorPrimera auxiliar;
		
		int i = 0, j = 0;
		
		while(i<titulares.size() && titulares.get(i).getIDJugador()!=idTitular)
			i++;
				
		while(j<suplentes.size() && suplentes.get(j).getIDJugador()!=idSuplente)
			j++;
			
		
		auxiliar = titulares.get(i);
		titulares.remove(i);
		titulares.add(i, suplentes.get(j));
		suplentes.remove(j);
		suplentes.add(j, auxiliar);
		
		return;
	}

	public void quitarJugador(int idJugador) {
		
		int i;
		
		for(i = 0; i<titulares.size(); i++){
			if(titulares.get(i).getIDJugador() == idJugador){
				titulares.remove(i);
				return;
			}	
		}
			
		for(i = 0; i<suplentes.size(); i++){
			if(suplentes.get(i).getIDJugador() == idJugador){
				suplentes.remove(i);
				return;
			}
		}
		
	}


	public ArrayList<JugadorPrimera> getTitulares(){
		
		return titulares;
	
	}

	public ArrayList<JugadorPrimera> getSuplentes(){
		
		return suplentes;
		
	}


	public void sumaPuntuacion(int puntos) {
		
		puntuacion += puntos;
		
	}


	public boolean noSumaTitular(String puesto) {

		return false;
	}

}
